{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "79cb0b80",
   "metadata": {},
   "outputs": [],
   "source": [
    "import random\n",
    "import time\n",
    "import matplotlib.pyplot as plt\n",
    "import math"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "97f4301e",
   "metadata": {},
   "outputs": [],
   "source": [
    "#生成测试数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c8785565",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#原始数据\n",
    "num_length = 10\n",
    "nums = list(range(num_length))\n",
    "nums"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "18796735",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[2, 6, 8, 3, 4]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#剔除数据\n",
    "n = 5\n",
    "select_nums = random.sample(nums, n)\n",
    "select_nums"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "c6688038",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0, 1, 5, 7, 9]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#缺失数据集\n",
    "new_nums = [element for element in nums if element not in select_nums]\n",
    "new_nums"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "e039e245",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#目标\n",
    "target = random.choice(new_nums)\n",
    "target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "3be21b4e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0, 0, 0, 0, 0, 0, 1, 1, 5, 5, 5, 5, 7, 9, 9]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#重复数据\n",
    "nums = [element for element in new_nums for _ in range(random.randint(1,6))]\n",
    "nums"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "ee6cbe2e",
   "metadata": {},
   "outputs": [],
   "source": [
    "#数据生成函数\n",
    "def generate_data(num_length, n):\n",
    "    nums = list(range(num_length))\n",
    "    select_nums = random.sample(nums, n)\n",
    "    new_nums = [element for element in nums if element not in select_nums]\n",
    "    target = random.choice(select_nums)\n",
    "    nums = [element for element in new_nums for _ in range(random.randint(1,20))]\n",
    "    return nums, target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "fb4ac64b",
   "metadata": {},
   "outputs": [],
   "source": [
    "def algorithm(nums, target):\n",
    "    #判断数是否存在于序列\n",
    "    def search(nums, target):\n",
    "        left, right = 0, len(nums)-1\n",
    "        while left <= right:\n",
    "            middle = left + (right - left)//2\n",
    "            if nums[middle] > target:\n",
    "                right = middle - 1\n",
    "            elif nums[middle] < target:\n",
    "                left =middle + 1\n",
    "            else:\n",
    "                return middle\n",
    "        return -1\n",
    "   \n",
    "    #左右边界索引\n",
    "    def Leftborder(nums, target):\n",
    "        left, right = 0, len(nums)-1\n",
    "        leftborder = -2\n",
    "        left_steps = []\n",
    "        while left <= right:\n",
    "            middle = left + (right - left)//2\n",
    "            if nums[middle] >= target:    #关键点：取左边界时，当middle=target时，right也要向左移-->(>=由来)\n",
    "                right = middle - 1             #eg: 7,8],8],8],8],9 \n",
    "                leftborder = right\n",
    "            else:\n",
    "                left =middle + 1\n",
    "            left_steps.append((left, right))\n",
    "        return leftborder, left_steps\n",
    "\n",
    "    def Rightborder(nums,target):\n",
    "        left, right = 0, len(nums)-1\n",
    "        rightborder = -2\n",
    "        right_steps = []\n",
    "        while left <= right:\n",
    "            middle = left + (right - left)//2\n",
    "            if nums[middle] > target:     #关键点：取右边界时，当middle=target时，right不要向左移-->(>由来)\n",
    "                right = middle - 1             #eg: 7,8,8,8,8],9 \n",
    "            else:                         #关键点：取右边界时，当middle=target时，left要向右移\n",
    "                left = middle + 1              #eg: 7,[8,[8,[8,[8,9\n",
    "                rightborder = left\n",
    "            right_steps.append((left, right))\n",
    "        return rightborder, right_steps\n",
    "    \n",
    "    left, left_steps = Leftborder(nums, target)\n",
    "    right, right_steps = Rightborder(nums, target) \n",
    "    \n",
    "    if search(nums, target)== -1:\n",
    "        return [-1,-1]\n",
    "    else:\n",
    "        return [left + 1, right - 1], left_steps, right_steps"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "d210d7ab",
   "metadata": {},
   "outputs": [],
   "source": [
    "def visualize_algorithm(nums, target, algorithm):\n",
    "    #算法过程数据\n",
    "    result, left_steps, right_steps = algorithm(nums, target)\n",
    "    print(left_steps)\n",
    "    print(right_steps)\n",
    "    print(result)\n",
    "    #可视化\n",
    "    fig, ax = plt.subplots()\n",
    "    ax.set_title(f\"Bisection Algorithm Visualization\")\n",
    "    ax.set_xlabel(\"Number Line\")\n",
    "    ax.set_ylabel(\"Steps\")\n",
    "    ax.set_xlim(0, len(nums))\n",
    "    ax.set_ylim(0, len(left_steps))\n",
    "    ax.grid(True)\n",
    "\n",
    "    #画每一步\n",
    "    for i, (left, right) in enumerate(left_steps):\n",
    "        ax.plot([left, right], [i, i], marker='o')\n",
    "    for i, (left, right) in enumerate(right_steps):\n",
    "        ax.plot([left, right], [i, i], marker='x')\n",
    "        \n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "210f881e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[(0, 6), (4, 6), (6, 6), (6, 5)]\n",
      "[(8, 14), (8, 10), (8, 8), (8, 7)]\n",
      "[6, 7]\n"
     ]
    },
    {
     "data": {
      "image/png": "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r+rshW3v3sh1cMDjnBzD57zIZDCzt0c9L68qO9/FwssLt8pQg23v3lV6zg2gOXH3yfNbik/ktbCwqLbzXRITE3HkyBEMGDAADx48gI2NDZKSkmBqamrU59zwO0KDfdAQsw/lWa+olwBEREQgKSkJ165dw9mzZxEREYGEhAQEBgYCAIKCghAREaGdf8KECdi3bx8WLlyIixcvIjIyEqdOnUJoaKhYm0BUITJTU9hP+997WyZ7aqLmuf20iCoNFTWhBuDfK5KePHHXy8sL3t7eBq9gquoaivfU9O/fv1prIKLKI2q4yc3NRVBQENq2bYtBgwYhJSUF+/fvx+DBgwEAmZmZyMrK0s7v6emJ2NhYrF27Fu7u7ti2bRt27NjBe9xQrWQ7ZAiaLVkMs6dOkjezt0ezJYur5R4zNaGG4nvIPL13pDjgqNVqo6iBiCqPqIelvvnmm1KnJyQk6I2NGDECI0aMqKKKiKqX7ZAhsBk0CIWnTuPxrVswa9wYVj26V/neEkM15J84gdNxceg+eHC1HIoqVtrN8arrcFBNqIGIKk+NO+eGyNjITE1Rt7eIl3z/rwarnj3x4NYtWPXsWa3hioiosvG2m0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpDDdEREQkKQw3REREJCkMN0RERCQpooab6Oho9OzZEzY2NmjSpAn8/f1x6dKlUpeJiYmBTCbTeVhaWlZTxURERFTTiRpuEhMTERISguPHjyMuLg5KpRJDhgxBQUFBqcvZ2toiKytL+8jIyKimiomIiKimMxNz5fv27dN5HhMTgyZNmuD06dMYMGBAicvJZDI4ODhUdXlERERUC9Woc27y8vIAAA0bNix1vocPH6JFixZwdnbGq6++ivPnz1dHeURERFQLiLrn5klqtRphYWHo27cvOnbsWOJ8bdu2xfr169G5c2fk5eXhyy+/hKenJ86fPw8nJye9+RUKBRQKhfZ5fn4+AECpVEKpVFb+htQSxdtuzD0oxl5osA8a7IMG+6DBPmjUhD6UZ90yQRCEKqylzD7++GPs3bsXycnJBkNKSZRKJdzc3BAQEIDZs2frTY+MjERUVJTeeGxsLKysrJ6rZiIiIqoehYWFGDVqFPLy8mBra1vqvDUi3ISGhmLnzp1ISkqCq6truZcfMWIEzMzM8P333+tNM7TnxtnZGVlZWbCzs3uuumszpVKJuLg4DB48GObm5mKXIyr2QoN90GAfNNgHDfZBoyb0IT8/H40aNSpTuBH1sJQgCPjkk0+wfft2JCQkVCjYqFQqnD17FkOHDjU4XS6XQy6X642bm5sb9Ru1GPvwL/ZCg33QYB802AcN9kFDzD6UZ72ihpuQkBDExsZi586dsLGxQXZ2NgCgXr16qFOnDgAgKCgIzZo1Q3R0NABg1qxZ6NOnD1q3bo379+9jwYIFyMjIwAcffCDadhAREVHNIWq4WbVqFQBg4MCBOuMbNmxAcHAwACAzMxMmJv9e1HXv3j2MHTsW2dnZaNCgAbp3746jR4+iffv21VU2ERER1WCiH5Z6loSEBJ3nixYtwqJFi6qoIiIiIqrtatR9boiIiIieF8MNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSUqlhZv79+9X1ksRERERVViFws28efPwww8/aJ+PHDkSdnZ2aNasGX7//fdKK46IiIiovCoUblavXg1nZ2cAQFxcHOLi4rB37174+flh0qRJlVogERERUXmYVWSh7OxsbbjZvXs3Ro4ciSFDhsDFxQW9e/eu1AKJiIiIyqNCe24aNGiA69evAwD27dsHHx8fAIAgCFCpVJVXHREREVE5VWjPzeuvv45Ro0ahTZs2uHPnDvz8/AAAZ86cQevWrSu1QCIiIqLyqFC4WbRoEVxcXHD9+nXMnz8f1tbWAICsrCyMHz++UgskIiIiKo8KhRtzc3N89tlneuMTJ0587oKIiIiInkeFwg0AXLp0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YgVcXFxgaWmJ3r174+TJkyXOGxMTA5lMpvOwtLSsxmqJiIioJhM93Pzwww8IDw/HzJkzkZqaCnd3d/j6+iI3N7fEZWxtbZGVlaV9ZGRkVGPFREREVJOJHm6++uorjB07FmPGjEH79u2xevVqWFlZYf369SUuI5PJ4ODgoH3Y29tXY8VERERUk4kaboqKinD69Gn4+Phox0xMTODj44Njx46VuNzDhw/RokULODs749VXX8X58+ero1wiIiKqBczEXPnt27ehUqn09rzY29vj4sWLBpdp27Yt1q9fj86dOyMvLw9ffvklPD09cf78eTg5OenNr1AooFAotM/z8/MBAEqlEkqlshK3pnYp3nZj7kEx9kKDfdBgHzTYBw32QaMm9KE865YJgiBUYS2lunnzJpo1a4ajR4/Cw8NDOz558mQkJibixIkTz3wNpVIJNzc3BAQEYPbs2XrTIyMjERUVpTceGxsLKyur59sAIiIiqhaFhYUYNWoU8vLyYGtrW+q8ou65adSoEUxNTZGTk6MznpOTAwcHhzK9hrm5Obp27YqrV68anB4REYHw8HDt8/z8fDg7O8Pb2xt2dnYVL76WUyqViIuLw+DBg2Fubi52OaJiLzTYBw32QYN90GAfNGpCH4qPvJSFqOHGwsIC3bt3x8GDB+Hv7w8AUKvVOHjwIEJDQ8v0GiqVCmfPnsXQoUMNTpfL5ZDL5Xrj5ubmRv1GLcY+/Iu90GAfNNgHDfZBg33QELMP5VmvqOEGAMLDwzF69Gj06NEDvXr1wuLFi1FQUIAxY8YAAIKCgtCsWTNER0cDAGbNmoU+ffqgdevWuH//PhYsWICMjAx88MEHYm4GERER1RCih5u33noLt27dwowZM5CdnY0uXbpg37592pOMMzMzYWLy70Vd9+7dw9ixY5GdnY0GDRqge/fuOHr0KNq3by/WJhAREVENInq4AYDQ0NASD0MlJCToPF+0aBEWLVpUDVURERFRbST6TfyIiIiIKhPDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERERSQrDDREREUkKww0RERFJCsMNERER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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_algorithm(nums, target,algorithm)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "a5780cb1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "100"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#序列长度\n",
    "start_length_nums =10\n",
    "end_length_nums =1001\n",
    "length_nums = list(range(start_length_nums, end_length_nums, 10))\n",
    "len(length_nums)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "4c356c06",
   "metadata": {},
   "outputs": [],
   "source": [
    "#运行时间计算函数\n",
    "def measure(algorithm, length_nums):\n",
    "    trial_nums = 20    #每个序列长度测试trail_nums次，算平均运行时间\n",
    "    time_list = []\n",
    "    for length in length_nums:\n",
    "        nums, target = generate_data(length,int(length*0.5))\n",
    "        total_time = 0\n",
    "        for _ in range(trial_nums):\n",
    "            target = random.choice(nums)\n",
    "            start_time = time.perf_counter() \n",
    "            algorithm(nums, target)\n",
    "            end_time = time.perf_counter() \n",
    "            total_time += end_time - start_time\n",
    "        avg_time = total_time / trial_nums\n",
    "        time_list.append(avg_time)\n",
    "    return time_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "6dec36ac",
   "metadata": {},
   "outputs": [],
   "source": [
    "#时间复杂度O（logn）\n",
    "o_log = [math.log(num,400)/100000 for num in length_nums]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "26082463",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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OBm04U/Va21XOLHjREThxcKJiIiIokIap5M6TuFc4ySl6CUZtB4fExGFCwsnIiIiigqpK2TUSql64Smc7A4BFrv4HMlxOgDtU/aIiDqKhRMRERFFhbTXUpy+bThExwon97G81HixcGLHiYjCjYUTERERRYXUBWobR97RNU7uiXpy4cRwCCIKMxZOREREFBWtzo6TQSeFQ4RnA1xpBFCvUctFGePIiSjcWDgRERFRVMjhEGHvOEkFmVouxthxIqJwY+FEREREUSGHQ+jahkN0rDtkcnteg04qxthxIqLwYuFEREREUSFvgNum49TRcAj3TpbUcTIxHIKIwoyFExEREUWFqzMkvvwwhGkfJ7Pb87o21WXHiYjCi4UTERERRUXbUb1wFU6t3kb12HEiojBj4URERERRIY/U6SMTR27UauTNdbkBLhGFGwsnIiIiiop24RBh6jjJI4B6dpyIKHJYOBEREVHEORyCXCDFtUnVszkEOBxCyM8tdZeMWsaRE1HksHAiIiKiiHMfnZPCIaSOE9CxZD15VE+nkZ+b4RBEFG4xLZyWLl2KSZMmISkpCVlZWZg/fz4OHTrk9zErV66ESqXyuBiNxigdMREREYXCPR5cWockdYeAjnWITB6peowjJ6LIiGnh9O233+L222/Hli1bsHbtWlitVpx//vlobm72+7jk5GSUlpbKl+Li4igdMREREYVCWt+k16qhVqsAADqNSr69Ix0ijw1wGUdORBGijeUnX716tcfHK1euRFZWFnbs2IFzzjnH5+NUKhVycnIifXhEREQUJq0Wz81vAfHvuV6rhsXm6FBAhPvGulLwBNc4EVG4dao1TvX19QCAtLQ0v/drampC3759UVBQgEsuuQT79u3zeV+z2YyGhgaPCxEREUVX281vJQZNx5P1pLE8g1vHiaN6RBRunaZwcjgcuPvuuzFt2jSMGjXK5/2GDh2K//73v/j444/x+uuvw+FwYOrUqTh16pTX+y9duhQpKSnypaCgIFJfAhEREfng3hVyJ0eSdygcwn2NE0f1iCgyOk3hdPvtt2Pv3r146623/N5vypQpWLhwIcaNG4cZM2bggw8+QGZmJl5++WWv91+yZAnq6+vly8mTJyNx+EREROSHe/Kdu3Ds5STvD6V1G9Vjx4mIwiyma5wkd9xxBz799FNs2LAB+fn5QT1Wp9Nh/Pjx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ERERERGZweBERERERERkBoMTERERERGRGQxOREREREREZjA4ERERERERmcHgREREREREZAaDExERERERkRkMTkRERERERGYwOBEREREREZnB4ERERERERGSGjdoFWJqIAACKiopUroSIiIiIiNR0PxPczwi/pckFp+LiYgCAj4+PypUQEREREVF9UFxcDGdn598co5HaxKtGxGg04urVq3BycoJGo3nq71dUVAQfHx9cvnwZer3+qb8fNR7sHaoL9g3VBfuG6oq9Q3VRn/pGRFBcXAwvLy9YWf32p5ia3BUnKysrtGrVyuLvq9frVW8MapjYO1QX7BuqC/YN1RV7h+qivvSNuStN93FxCCIiIiIiIjMYnIiIiIiIiMxgcHrKtFotFixYAK1Wq3Yp1MCwd6gu2DdUF+wbqiv2DtVFQ+2bJrc4BBERERER0ePiFSciIiIiIiIzGJyIiIiIiIjMYHAiIiIiIiIyg8GJiIiIiIjIDAanp2zFihXw8/ODvb09QkJCcOTIEbVLIhXFxsbimWeegZOTE9zd3TF8+HCcOXPGZMzdu3cxdepUtGjRAo6Ojhg5ciTy8vJMxmRnZyMiIgI6nQ7u7u54//33UVFRYcmpkIqWLl0KjUaDGTNmKPvYN1STK1eu4PXXX0eLFi3g4OCAbt26ITU1VTkuIpg/fz48PT3h4OCAsLAwnDt3zuQcBQUFiIyMhF6vh4uLCyZMmICSkhJLT4UsqLKyEvPmzUObNm3g4OCAdu3aYfHixXhwPTH2Dh04cAAvv/wyvLy8oNFosH37dpPjT6pHjh8/jueffx729vbw8fHBsmXLnvbUHk3oqYmPjxc7OztZu3atnDx5UiZNmiQuLi6Sl5endmmkkvDwcFm3bp1kZmZKenq6vPTSS+Lr6yslJSXKmMmTJ4uPj48kJiZKamqqPPvss9KnTx/leEVFhXTt2lXCwsLk2LFj8sMPP4ibm5vMmTNHjSmRhR05ckT8/Pyke/fuEh0drexn39DDCgoKpHXr1jJu3DhJSUmRixcvyo8//ijnz59XxixdulScnZ1l+/btkpGRIUOHDpU2bdrInTt3lDGDBw+WHj16yOHDhyUpKUnat28vY8aMUWNKZCExMTHSokUL+e677+TSpUuyZcsWcXR0lC+++EIZw96hH374QebOnStbt24VALJt2zaT40+iR27duiUG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\n",
      "text/plain": [
       "<Figure size 1000x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制时间复杂度图\n",
    "plt.figure(figsize=(10, 5))\n",
    "plt.plot(length_nums, measure(algorithm, length_nums), label='Algorithm  - Time')\n",
    "plt.plot(length_nums, o_log, label='O(logn)')\n",
    "plt.xlabel('Sequence Length')\n",
    "plt.ylabel('Time (seconds)')\n",
    "plt.title('Time Complexity')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
